#! /usr/bin/env/python3
# -*- coding:UTF-8 -*-
"""
    名称：52周存钱挑战
    作者：王楠
    版本：4.0
    日期：2020/02/27
    功能：2.0:增加存入信息的记录，以及查询
         3.0:函数化 while循环改为for
         4.0:用户输入信息 查询函数化
         5.0:根据用户输入的日期判断一年的第几周，然后输出相应的存款情况
"""
import datetime


def money_saving(money_peer_week, increase, total_weak):
    '''
        函数：计算存钱数
             将存钱周数，每周存入数，和累计存钱数组成一个dict，放入一个list，并返回该list
    '''
    money_peer_week_list = []
    money_saving_list = []
    # i = 1   #记录周数
    for i in range(total_weak):
        money_peer_week_list.append(money_peer_week)
        # 格式化输出
        # print('第{}周存入{}元，账户累计存入{}元'.format(i + 1, money_peer_week,
        #                                    sum(money_peer_week_list)))

        # 存储到l中

        money_saving_list.append({
            'i': i + 1,
            'money_peer_week': money_peer_week,
            'saving': sum(money_peer_week_list)
        })

        money_peer_week += increase

    return money_peer_week_list, money_saving_list


def money_saving_query(week_qurey, money_saving_list):
    '''
        查询某一周的存款情况
    '''
    for x in range(len(money_saving_list)):
        if money_saving_list[x]['i'] == week_qurey:
            print(
                '您第{}周存入了{}元'.format(money_saving_list[x]['i'],
                                     money_saving_list[x]['money_peer_week']))
            print('截止到第{}累计共存入{}元'.format(money_saving_list[x]['i'],
                                          money_saving_list[x]['saving']))
    if money_saving_list[x]['i'] < week_qurey:
        print('您还未存到第', week_qurey, '周')


def money_challenge():
    '''
        52周存钱函数
    '''
    money_input_str = input('请分别输入第一周存钱数，每周增加存入数，存款总周数（用空格分割）：')
    money_input = money_input_str.split(' ')

    money_peer_week = float(money_input[0])  # 起始存钱
    increase = float(money_input[1])         # 递增的金额
    total_weak = int(money_input[2])         # 总存钱周数

    money_peer_week_list, money_saving_list = money_saving(
        money_peer_week, increase, total_weak)
    # 查询
    input_date_str = input('请输入日期（yyyy/mm/dd）:')
    input_date = datetime.datetime.strptime(input_date_str, '%Y/%m/%d')
    week_qurey = input_date.isocalendar()[1]
    # week_qurey = int(input('查询第几周的存钱情况：'))
    money_saving_query(week_qurey, money_saving_list)


if __name__ == "__main__":
    money_challenge()
